package com.example.stuwork.service;

import com.example.stuwork.common.Result;
import com.example.stuwork.pojo.CourseAnnouncement;

import java.util.List;

/**
 * 课程公告服务接口
 */
public interface CourseAnnouncementService {

    /**
     * 获取所有课程公告
     *
     * @return 课程公告列表
     */
    Result<List<CourseAnnouncement>> getAllAnnouncements();

    /**
     * 根据ID获取课程公告
     *
     * @param announcementId 公告ID
     * @return 课程公告
     */
    Result<CourseAnnouncement> getAnnouncementById(Long announcementId);

    /**
     * 根据课程ID和班级ID获取课程公告
     *
     * @param courseId 课程ID
     * @param classId 班级ID
     * @return 课程公告列表
     */
    Result<List<CourseAnnouncement>> getAnnouncementsByCourseAndClass(String courseId, Long classId);

    /**
     * 根据教师ID获取课程公告
     *
     * @param teacherId 教师ID
     * @return 课程公告列表
     */
    Result<List<CourseAnnouncement>> getAnnouncementsByTeacherId(String teacherId);

    /**
     * 添加课程公告
     *
     * @param announcement 课程公告
     * @return 添加结果
     */
    Result<?> addAnnouncement(CourseAnnouncement announcement);

    /**
     * 更新课程公告
     *
     * @param announcementId 公告ID
     * @param announcement 课程公告
     * @return 更新结果
     */
    Result<?> updateAnnouncement(Long announcementId, CourseAnnouncement announcement);

    /**
     * 删除课程公告
     *
     * @param announcementId 公告ID
     * @return 删除结果
     */
    Result<?> deleteAnnouncement(Long announcementId);
} 